package com.herench.bs.model;

import com.herench.bs.utils.DataFormatUtils;
import com.herench.bs.utils.IdGenerator;
import org.springframework.util.Assert;

import java.io.Serializable;
import java.util.Date;

/**
 * 预约记录
 * Created by luoxiaoming on 2017/7/1.
 */
public class ClinicAppointmentRecord implements Serializable {
    private static final long serialVersionUID = 7952533222005934352L;

    private String id;
    private String hospitalCode;
    private String channelCode; //预约|挂号渠道代码
    private String appointId;//预约就诊号 同一医院同一日期 唯一
    private String username;//操作用户
    private String personId; //预约病人ID
    private String idCard;// 预约病人身份证号
    private String name; //病人姓名
    private String phone;//电话
    private String cardId;//卡id
    private String tranNo;//合同号
    private String patientType;//患者挂号类别 显示用 自费，门大，门特（病种名）
    private Date appointDate; //预约日期
    private String period;//预约时段
    private Date createTime;//操作时间
    private Date modifyTime;//修改时间
    private String deptCode;//预约科室
    private String doctorCode;//预约医生
    private String doctorTitleCode;//预约医生级别/职称 注意普通号显示
    private String ampm;// 上午|下午|晚上
    private String innerSort;//预约内部号|就诊号
    private Integer queueNum;//排队叫号序列
    private String state;//预约状态：0 预约未报到 ； 1 取消预约；  2 挂号成功 ；3已就诊；  4 挂号中间状态  ； 7 挂号撤销；9 已退号
    private String appointmentType;//预约类型 1、普通预约 2、当日挂号 3、诊间预约
    private String appointFee;//挂号费
    private String clinicFee;//诊查费
    private String otherFee;//其他费用
    private String deptAddress;//就诊地址
    private String insurVisitId;//医保就诊序号
    private String insurPay;//医保统筹支付金额
    private String insurAccountPay;//医保个人账户支付金额
    private String ownPay;//个人支付金额
    private String totalCost;//总费用
    private String visitNo;//院内就诊号
    private String rcptNo;//院内票据号
    private String clinicLabel;//号表数据
    private String HisClinicAppointsId;//HIS预约ID（预约数据导入HIS库之后产生，预约报到时需要）
    private String payType;//支付类别
    private String insuranceType;//医保类型
    private String mtType;//门特类型

    public ClinicAppointmentRecord() {
    }

    public ClinicAppointmentRecord(String hospitalCode, String channelCode) {
        Assert.notNull(hospitalCode, "医院代码不能为空。");
        Assert.notNull(channelCode, "渠道编码不能为空。");
        this.hospitalCode = hospitalCode;
        this.channelCode = channelCode;
        String id = DataFormatUtils.getTimeStringNoSpace(new Date()) + hospitalCode + channelCode + IdGenerator.getFixLenthString(4);
        this.id = id;
    }

    public String getHisClinicAppointsId() {
        return HisClinicAppointsId;
    }

    public void setHisClinicAppointsId(String hisClinicAppointsId) {
        HisClinicAppointsId = hisClinicAppointsId;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getHospitalCode() {
        return hospitalCode;
    }

    public void setHospitalCode(String hospitalCode) {
        this.hospitalCode = hospitalCode;
    }

    public String getChannelCode() {
        return channelCode;
    }

    public void setChannelCode(String channelCode) {
        this.channelCode = channelCode;
    }

    public String getAppointId() {
        return appointId;
    }

    public void setAppointId(String appointId) {
        this.appointId = appointId;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPersonId() {
        return personId;
    }

    public void setPersonId(String personId) {
        this.personId = personId;
    }

    public String getIdCard() {
        return idCard;
    }

    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getCardId() {
        return cardId;
    }

    public void setCardId(String cardId) {
        this.cardId = cardId;
    }

    public String getTranNo() {
        return tranNo;
    }

    public void setTranNo(String tranNo) {
        this.tranNo = tranNo;
    }

    public String getPatientType() {
        return patientType;
    }

    public void setPatientType(String patientType) {
        this.patientType = patientType;
    }

    public Date getAppointDate() {
        return appointDate;
    }

    public void setAppointDate(Date appointDate) {
        this.appointDate = appointDate;
    }

    public String getPeriod() {
        return period;
    }

    public void setPeriod(String period) {
        this.period = period;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getModifyTime() {
        return modifyTime;
    }

    public void setModifyTime(Date modifyTime) {
        this.modifyTime = modifyTime;
    }

    public String getDeptCode() {
        return deptCode;
    }

    public void setDeptCode(String deptCode) {
        this.deptCode = deptCode;
    }

    public String getDoctorCode() {
        return doctorCode;
    }

    public void setDoctorCode(String doctorCode) {
        this.doctorCode = doctorCode;
    }

    public String getDoctorTitleCode() {
        return doctorTitleCode;
    }

    public void setDoctorTitleCode(String doctorTitleCode) {
        this.doctorTitleCode = doctorTitleCode;
    }

    public String getAmpm() {
        return ampm;
    }

    public void setAmpm(String ampm) {
        this.ampm = ampm;
    }

    public String getInnerSort() {
        return innerSort;
    }

    public void setInnerSort(String innerSort) {
        this.innerSort = innerSort;
    }

    public Integer getQueueNum() {
        return queueNum;
    }

    public void setQueueNum(Integer queueNum) {
        this.queueNum = queueNum;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    public String getAppointmentType() {
        return appointmentType;
    }

    public void setAppointmentType(String appointmentType) {
        this.appointmentType = appointmentType;
    }

    public String getAppointFee() {
        return appointFee;
    }

    public void setAppointFee(String appointFee) {
        this.appointFee = appointFee;
    }

    public String getClinicFee() {
        return clinicFee;
    }

    public void setClinicFee(String clinicFee) {
        this.clinicFee = clinicFee;
    }

    public String getOtherFee() {
        return otherFee;
    }

    public void setOtherFee(String otherFee) {
        this.otherFee = otherFee;
    }

    public String getDeptAddress() {
        return deptAddress;
    }

    public void setDeptAddress(String deptAddress) {
        this.deptAddress = deptAddress;
    }

    public String getInsurVisitId() {
        return insurVisitId;
    }

    public void setInsurVisitId(String insurVisitId) {
        this.insurVisitId = insurVisitId;
    }

    public String getInsurPay() {
        return insurPay;
    }

    public void setInsurPay(String insurPay) {
        this.insurPay = insurPay;
    }

    public String getInsurAccountPay() {
        return insurAccountPay;
    }

    public void setInsurAccountPay(String insurAccountPay) {
        this.insurAccountPay = insurAccountPay;
    }

    public String getOwnPay() {
        return ownPay;
    }

    public void setOwnPay(String ownPay) {
        this.ownPay = ownPay;
    }

    public String getTotalCost() {
        return totalCost;
    }

    public void setTotalCost(String totalCost) {
        this.totalCost = totalCost;
    }

    public String getVisitNo() {
        return visitNo;
    }

    public void setVisitNo(String visitNo) {
        this.visitNo = visitNo;
    }

    public String getRcptNo() {
        return rcptNo;
    }

    public void setRcptNo(String rcptNo) {
        this.rcptNo = rcptNo;
    }

    public String getClinicLabel() {
        return clinicLabel;
    }

    public void setClinicLabel(String clinicLabel) {
        this.clinicLabel = clinicLabel;
    }

    public String getPayType() {
        return payType;
    }

    public void setPayType(String payType) {
        this.payType = payType;
    }

    public String getInsuranceType() {
        return insuranceType;
    }

    public void setInsuranceType(String insuranceType) {
        this.insuranceType = insuranceType;
    }

    public String getMtType() {
        return mtType;
    }

    public void setMtType(String mtType) {
        this.mtType = mtType;
    }
}
